home *** CD-ROM | disk | FTP | other *** search
- '----------------------------------------------------------
- ' PROGRAM: LABELS.BAS PROGRAMMER: A. KELLETT
- ' DATE-WRITTEN: 08/20/91
- ' USING POWER BASIC V2.10A
- '
- ' THIS PROGRAM ALLOWS PRINTING LABELS ON 15/16" HIGH BY
- ' 3.5" WIDE LABELS...
- ' VERSION: 1.00 Copyright (c) 1991 LAST UPDATED: 08/21/91
- '----------------------------------------------------------
- VERSION$ = "1.00":LMARGIN = 5
- $INCLUDE "CHARS.INC"
- $INCLUDE "GETCHAR.INC"
-
- '**** MAIN CODE LOOP FOLLOWING ****
- WHILE KEYIN$ <> "0"
- CLS
- LOCATE 01,20:PRINT "LABEL PRINTING PROGRAM V";VERSION$;" BY A KELLETT."
- LOCATE 02,8:PRINT "╓────────────────────────────────────────────────────────────╖"
- LOCATE 03,8:PRINT "║ THIS PROGRAM IS DESIGNED TO WORK WITH LABELS WHICH ARE ║"
- LOCATE 04,8:PRINT "║ 15/16 INCHES HIGH BY 3.5 INCHES WIDE. IT ALLOWS UP TO ║"
- LOCATE 05,8:PRINT "║ FOUR LINES ON EACH LABEL. ║"
- LOCATE 06,8:PRINT "╙───────────╥──────────────────────────────────────╥─────────╜"
- LOCATE 07,8:PRINT " ║ ║
- LOCATE 08,8:PRINT " ║ 0 QUIT (EXIT TO DOS) ║
- LOCATE 09,8:PRINT " ║ 1 SET LEFT MARGIN FOR PRINTING ║
- LOCATE 10,8:PRINT " ║ 2 ENTER LABEL CONTENTS ║
- LOCATE 11,8:PRINT " ║ 3 PRINT ALIGNMENT TEST ║
- LOCATE 12,8:PRINT " ║ 4 PRINT THE LABELS ║
- LOCATE 13,8:PRINT " ║ ║
- LOCATE 14,8:PRINT " ║ PLEASE CHOOSE [0 - 4] ║
- LOCATE 15,8:PRINT " ║ ║
- LOCATE 16,8:PRINT " ╙──────────────────────────────────────╜
-
- DO
- KEYIN$ = UCASE$(INKEY$)
- LOOP UNTIL INSTR(" 01234", KEYIN$) > 1
-
- SELECT CASE KEYIN$
- CASE "0":CLS
- LOCATE 24,1:PRINT "VERSION ";VERSION$;" BY A KELLETT"
- CASE "1":GOSUB LEFTMARGIN
- CASE "2":GOSUB LABELCONTENTS
- CASE "3":GOSUB ALIGNMENT
- CASE "4":GOSUB PRINTLABELS
- END SELECT
- WEND
- END
- '**** END OF MAIN CODE LOOP ***
-
- '
- ' THIS MODULE ALLOWS CHANGING THE LEFT MARGIN FROM THE DEFAULT
- '--------------------------------------------------------------------
- LEFTMARGIN:
- CLS:LOCATE 1,20:PRINT "SET THE LEFT MARGIN FOR PRINTING LABELS."
- LOCATE 2,5:PRINT USING "THE CURRENT MARGIN IS ##";LMARGIN
- LOCATE 3,5:PRINT "ENTER THE NEW MARGIN [0 - 30]:";CHR$(16)
- LOCATE 3,38:PRINT CHR$(17)
- CALL GETCHAR(3,35,2,NUMBER$):LMARGIN = VAL(INSTRING$):INSTRING$ = ""
-
- IF LMARGIN < 0 OR LMARGIN > 30 THEN
- LOCATE 5,5:PRINT "THAT IS AN INVALID MARGIN. WILL USE DEFAULT OF 5."
- LMARGIN = 5
- DELAY 4
- END IF
- DELAY 1.5
-
- RETURN
- '
- ' THIS MODULE ALLOWS ENTERING THE LABEL CONTENTS - FOUR LINES MAX
- '--------------------------------------------------------------------
- LABELCONTENTS:
- CLS:LOCATE 1,15:PRINT "ENTER NAME/ADDRESS FOR YOUR LABELS."
- LOCATE 2,5:PRINT "SIMPLY PRESS Enter FOR ANY LINES THAT NEED TO BE BLANK."
- LOCATE 5,13:PRINT CHR$(16):LOCATE 5,44:PRINT CHR$(17)
- LOCATE 5,5:PRINT "LINE 1:":CALL GETCHAR(5,13,30,NORMAL$)
- LINE1$ = INSTRING$:INSTRING$ = ""
- LOCATE 6,13:PRINT CHR$(16):LOCATE 6,44:PRINT CHR$(17)
- LOCATE 6,5:PRINT "LINE 2:":CALL GETCHAR(6,13,30,NORMAL$)
- LINE2$ = INSTRING$:INSTRING$ = ""
- LOCATE 7,13:PRINT CHR$(16):LOCATE 7,44:PRINT CHR$(17)
- LOCATE 7,5:PRINT "LINE 3:":CALL GETCHAR(7,13,30,NORMAL$)
- LINE3$ = INSTRING$:INSTRING$ = ""
- LOCATE 8,13:PRINT CHR$(16):LOCATE 8,44:PRINT CHR$(17)
- LOCATE 8,5:PRINT "LINE 4:":CALL GETCHAR(8,13,30,NORMAL$)
- LINE4$ = INSTRING$:INSTRING$ = ""
-
- LOCATE 12,5:PRINT "LABEL CONTENTS HAVE BEEN CHANGED. PRESS ANY KEY TO CONTINUE."
- WHILE NOT INSTAT
- '*** LOOP UNTIL A KEY IS PRESSED ***
- WEND
-
- RETURN
- '
- ' THIS MODULE ALLOWS PRINTING TEST LABELS FOR ALIGNMENT PURPOSES
- '--------------------------------------------------------------------
- ALIGNMENT:
- EXITFLAG$ = ""
- WHILE EXITFLAG$ = ""
- CLS:LOCATE 1,25:PRINT "PRINT TEST LABELS FOR ALIGNMENT."
- LOCATE 2,8:PRINT "LABELS WILL BE PRINTED WITH IN GROUPS OF TWO. PLEASE"
- LOCATE 3,8:PRINT "ALIGN THE LABELS BEFORE PRESSING ANY KEY TO BEGIN..."
- WHILE NOT INSTAT
- '*** LOOP UNTIL A KEY IS PRESSED ***
- WEND
- FOR I% = 1 TO 2
- LPRINT TAB(LMARGIN);"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- LPRINT TAB(LMARGIN);"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- LPRINT TAB(LMARGIN);"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- LPRINT TAB(LMARGIN);"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- LPRINT:LPRINT: '*** SPACE UP BETWEEN LABELS ***
- NEXT I%
- LOCATE 5,8:PRINT "DO YOU NEED TO PRINT MORE ALIGNMENT LABELS? [Y/N]"
- DO
- KEYIN$ = UCASE$(INKEY$)
- LOOP UNTIL INSTR(" YN", KEYIN$) > 1
- IF KEYIN$ = "N" THEN
- EXITFLAG$ = "Y"
- END IF
- WEND
-
- RETURN
- '
- ' THIS MODULE ACTUALLY PRINTS THE LABELS (IF CONTENTS HAVE BEEN ENTERED)
- '--------------------------------------------------------------------
- PRINTLABELS:
- EXITFLAG$ = ""
- IF (LINE1$ = "" AND LINE2$ = "" AND LINE3$ = "" AND LINE4$ = "") THEN
- CLS:LOCATE 1,25:PRINT "PRINT THE LABELS."
- LOCATE 2,8:PRINT "THE CONTENTS OF THE LABELS HAVE NOT BEEN ENTERED. YOU"
- LOCATE 3,8:PRINT "SHOULD CHOOSE ENTER LABEL CONTENTS FROM THE MAIN"
- LOCATE 4,8:PRINT "MENU AND ENTER THE CONTENTS BEFORE YOU CAN PRINT LABELS."
- LOCATE 6,20:PRINT "PRESS ANY KEY TO CONTINUE"
- WHILE NOT INSTAT
- '*** LOOP UNTIL A KEY IS PRESSED ***
- WEND
- RETURN
- END IF
- WHILE EXITFLAG$ = ""
- CLS:LOCATE 1,25:PRINT "PRINT THE LABELS."
- LOCATE 16,15:PRINT "THE CURRENT LABEL IS: "
- LOCATE 18,8:PRINT LINE1$
- LOCATE 19,8:PRINT LINE2$
- LOCATE 20,8:PRINT LINE3$
- LOCATE 21,8:PRINT LINE4$
-
- LOCATE 3,8:
- PRINT "ENTER NUMBER OF LABELS TO PRINT [1-999], 0 TO QUIT:";CHR$(16)
- LOCATE 3,63:PRINT CHR$(17)
- CALL GETCHAR(3,59,3,NUMBER$):NUMLABELS = VAL(INSTRING$):INSTRING$ = ""
- IF NUMLABELS = 0 THEN
- EXITFLAG$ = " "
- DELAY 1.5
- RETURN
- END IF
- IF (NUMLABELS > 999) OR (NUMLABELS < 0) THEN
- LOCATE 4,8:PRINT "INVALID NUMBER OF LABELS, MUST BE FROM 1 TO 999"
- DELAY 4
- RETURN
- END IF
- LOCATE 4,8
- PRINT "PLEASE ALIGN THE LABELS BEFORE PRESSING ANY KEY TO BEGIN..."
- WHILE NOT INSTAT
- '*** LOOP UNTIL A KEY IS PRESSED ***
- WEND
- FOR I% = 1 TO NUMLABELS
- LPRINT TAB(LMARGIN);LINE1$
- LPRINT TAB(LMARGIN);LINE2$
- LPRINT TAB(LMARGIN);LINE3$
- LPRINT TAB(LMARGIN);LINE4$
- LPRINT:LPRINT: '*** SPACE UP BETWEEN LABELS ***
- NEXT I%
- LOCATE 6,8:PRINT "DO YOU NEED TO PRINT MORE LABELS? [Y/N]"
- DO
- KEYIN$ = UCASE$(INKEY$)
- LOOP UNTIL INSTR(" YN", KEYIN$) > 1
- IF KEYIN$ = "N" THEN
- EXITFLAG$ = "Y"
- END IF
- WEND
-
- RETURN
-
-
-